package com.ymttest.common.entitie;

import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.List;

import com.ymatou.iapi.trading.sellerquery2.parameter.vo.SubProductInfo;
import com.ymttest.common.enums.SalesTypeStringEnum;
import com.ymttest.database.model.ProductPromotion;

/**
 * 订单项信息
 */
public class OrderItemInfo {

	/**
	 * 商品个数
	 */
	private int Amount;

	/**
	 * 保税区
	 */
	private int BondedArea;

	/**
	 * 商品规格id
	 */
	private String CatalogId;

	/**
	 * 订单项描述
	 */
	private String Description;
	/**
	 * /** 平摊调整金额
	 */
	private BigDecimal Discount;

	/**
	 * 运费商品分摊金额
	 */
	private BigDecimal Freight;
	/**
	 * /** 是否为免运费标识
	 */
	private Boolean FreightFree;

	/**
	 * 是否算入成本（专门用于财务核算）
	 */
	private boolean IsCost;

	/**
	 * 订单项类型
	 */
	private int ItemType;
	/**
	 * /** 物流类型
	 */
	private int LogisticsType;

	/**
	 * 订单项Id
	 */
	private String OrderItemId;

	/**
	 * 订单商品对应的活动信息
	 */
	private OrderItemInfoExt OrderItemInfoExt;

	/**
	 * 商品图片url
	 */
	private String PictureUrl;

	/**是否预售商品
	 * 
	 */
	private boolean PreSale;

	/**
	 * 新人价补贴
	 */
	private BigDecimal Premium = new BigDecimal(0);

	/**
	 * 价格
	 */
	private BigDecimal Price = new BigDecimal(0);

	/**
	 * 区分新客价或者VIP价
	 */
	private int PriceType;

	/**
	 * 商品id
	 */
	private String ProductId;

	/**
	 * 商品原价
	 */
	private BigDecimal ProductOriginalPrice;

	/**
	 * 商品成交价
	 */
	private BigDecimal ProductPrice;

	/**
	 * 退货方式(官方、非官方)
	 */
	private int ProductRefundChannel;

	/**
	 * 商品优惠信息
	 */
	private ProductPromotion Promotion;
	/**
	 * /** 订单项相关属性组合信息
	 */
	private String PropertyInfo;

	/**
	 * 商品详情链接url
	 */
	private String ReferenceUrl;

	/**
	 * 商品退款单号
	 */
	private String RefundBillNo;

	/**
	 * 申请成功或申请中退款运费金额
	 */
	private BigDecimal refundFreight = BigDecimal.ZERO;

	/**
	 * 是否护航直邮
	 */
	private boolean SailProtected;

	/**
	 * 销售类型
	 */
	private SalesTypeStringEnum SalesType;

	/**
	 * 平摊商家优惠券金额
	 */
	private BigDecimal SellerCouponAmount;

	/**
	 * 商品sku
	 */
	private String Sku;

	/**
	 * 备货状态
	 */
	private int StockStatus;

	/**
	 * 商品2级类别目录
	 */
	private int SubProductCategoryId;

	/**
	 * 是否支持7天无条件退款
	 */
	private boolean SupportRtnWithoutReason;

	/**
	 * 关税承担类型(0-卖家承担 1-买家承担)
	 */
	private int TariffType;

	/**
	 * 第三方折扣金额（招行）
	 */
	private BigDecimal ThirdPartyDiscount = new BigDecimal(0);

	/**
	 * 商品标题
	 */
	private String Title;

	/**
	 * 平摊码头平台优惠券金额
	 */
	private BigDecimal YmtCouponAmount;
	/**
	* 是否PSP商品
	*/
	private boolean PspProduct;

	/**
	* 原产地
	*/
	private String CountryOfOrigin;

	/**
	 * 原产地国旗
	 */
	private String CountryFlagUrl;

	/**
	 * 组合商品
	 */
	private List<SubProductInfo> SubProductInfos;

	public int getAmount() {
		return Amount;
	}

	public void setAmount(int amount) {
		Amount = amount;
	}

	public int getBondedArea() {
		return BondedArea;
	}

	public void setBondedArea(int bondedArea) {
		BondedArea = bondedArea;
	}

	public String getCatalogId() {
		return CatalogId;
	}

	public void setCatalogId(String catalogId) {
		CatalogId = catalogId;
	}

	public String getDescription() {
		return Description;
	}

	public void setDescription(String description) {
		Description = description;
	}

	public BigDecimal getDiscount() {
		return Discount;
	}

	public void setDiscount(BigDecimal discount) {
		Discount = discount;
	}

	public BigDecimal getFreight() {
		return Freight;
	}

	public void setFreight(BigDecimal freight) {
		Freight = freight;
	}

	public Boolean getFreightFree() {
		return FreightFree;
	}

	public void setFreightFree(Boolean freightFree) {
		FreightFree = freightFree;
	}

	public boolean isIsCost() {
		return IsCost;
	}

	public void setIsCost(boolean isCost) {
		IsCost = isCost;
	}

	public int getItemType() {
		return ItemType;
	}

	public void setItemType(int itemType) {
		ItemType = itemType;
	}

	public int getLogisticsType() {
		return LogisticsType;
	}

	public void setLogisticsType(int logisticsType) {
		LogisticsType = logisticsType;
	}

	public String getOrderItemId() {
		return OrderItemId;
	}

	public void setOrderItemId(String orderItemId) {
		OrderItemId = orderItemId;
	}

	public OrderItemInfoExt getOrderItemInfoExt() {
		return OrderItemInfoExt;
	}

	public void setOrderItemInfoExt(OrderItemInfoExt orderItemInfoExt) {
		OrderItemInfoExt = orderItemInfoExt;
	}

	public String getPictureUrl() {
		return PictureUrl;
	}

	public void setPictureUrl(String pictureUrl) {
		PictureUrl = pictureUrl;
	}

	public BigDecimal getPremium() {
		return Premium;
	}

	public void setPremium(BigDecimal premium) {
		Premium = premium;
	}

	public BigDecimal getPrice() {
		return Price;
	}

	public void setPrice(BigDecimal price) {
		Price = price;
	}

	public int getPriceType() {
		return PriceType;
	}

	public void setPriceType(int priceType) {
		PriceType = priceType;
	}

	public String getProductId() {
		return ProductId;
	}

	public void setProductId(String productId) {
		ProductId = productId;
	}

	public BigDecimal getProductOriginalPrice() {
		return ProductOriginalPrice;
	}

	public void setProductOriginalPrice(BigDecimal productOriginalPrice) {
		ProductOriginalPrice = productOriginalPrice;
	}

	public BigDecimal getProductPrice() {
		return ProductPrice;
	}

	public void setProductPrice(BigDecimal productPrice) {
		ProductPrice = productPrice;
	}

	public int getProductRefundChannel() {
		return ProductRefundChannel;
	}

	public void setProductRefundChannel(int productRefundChannel) {
		ProductRefundChannel = productRefundChannel;
	}

	public ProductPromotion getPromotion() {
		return Promotion;
	}

	public void setPromotion(ProductPromotion promotion) {
		Promotion = promotion;
	}

	public String getPropertyInfo() {
		return PropertyInfo;
	}

	public void setPropertyInfo(String propertyInfo) {
		PropertyInfo = propertyInfo;
	}

	public String getReferenceUrl() {
		return ReferenceUrl;
	}

	public void setReferenceUrl(String referenceUrl) {
		ReferenceUrl = referenceUrl;
	}

	public String getRefundBillNo() {
		return RefundBillNo;
	}

	public void setRefundBillNo(String refundBillNo) {
		RefundBillNo = refundBillNo;
	}

	public boolean isSailProtected() {
		return SailProtected;
	}

	public void setSailProtected(boolean sailProtected) {
		SailProtected = sailProtected;
	}

	public SalesTypeStringEnum getSalesType() {
		return SalesType;
	}

	public void setSalesType(SalesTypeStringEnum salesType) {
		SalesType = salesType;
	}

	public BigDecimal getSellerCouponAmount() {
		return SellerCouponAmount;
	}

	public void setSellerCouponAmount(BigDecimal sellerCouponAmount) {
		SellerCouponAmount = sellerCouponAmount;
	}

	public String getSku() {
		return Sku;
	}

	public void setSku(String sku) {
		Sku = sku;
	}

	public int getStockStatus() {
		return StockStatus;
	}

	public void setStockStatus(int stockStatus) {
		StockStatus = stockStatus;
	}

	public int getSubProductCategoryId() {
		return SubProductCategoryId;
	}

	public void setSubProductCategoryId(int subProductCategoryId) {
		SubProductCategoryId = subProductCategoryId;
	}

	public boolean isSupportRtnWithoutReason() {
		return SupportRtnWithoutReason;
	}

	public void setSupportRtnWithoutReason(boolean supportRtnWithoutReason) {
		SupportRtnWithoutReason = supportRtnWithoutReason;
	}

	public int getTariffType() {
		return TariffType;
	}

	public void setTariffType(int tariffType) {
		TariffType = tariffType;
	}

	public String getTitle() {
		return Title;
	}

	public void setTitle(String title) {
		Title = title;
	}

	public BigDecimal getYmtCouponAmount() {
		return YmtCouponAmount;
	}

	public void setYmtCouponAmount(BigDecimal ymtCouponAmount) {
		YmtCouponAmount = ymtCouponAmount;
	}

	public static void main(String[] args) {
		for (Field f : OrderItemInfo.class.getDeclaredFields()) {
			String s = f.getName();
			System.out
					.println("DataUtil.verify(exp.get"
							+ s
							+ "(), act.get"
							+ s
							+ "(), \"验证OrderInfo.OrderItemList中ProductId=[\"+expPid+\"]的"
							+ s + "\");");
		}
	}

	public boolean isPreSale() {
		return PreSale;
	}

	public void setPreSale(boolean preSale) {
		PreSale = preSale;
	}

	public BigDecimal getThirdPartyDiscount() {
		return ThirdPartyDiscount;
	}

	public void setThirdPartyDiscount(BigDecimal thirdPartyDiscount) {
		ThirdPartyDiscount = thirdPartyDiscount;
	}

	public boolean isPspProduct() {
		return PspProduct;
	}

	public void setPspProduct(boolean pspProduct) {
		this.PspProduct = pspProduct;
	}

	public BigDecimal getRefundFreight() {
		return refundFreight;
	}

	public void setRefundFreight(BigDecimal refundFreight) {
		this.refundFreight = refundFreight;
	}

	public List<SubProductInfo> getSubProductInfos() {
		return SubProductInfos;
	}

	public void setSubProductInfos(List<SubProductInfo> subProductInfos) {
		this.SubProductInfos = subProductInfos;
	}

	public String getCountryOfOrigin() {
		return CountryOfOrigin;
	}

	public void setCountryOfOrigin(String countryOfOrigin) {
		CountryOfOrigin = countryOfOrigin;
	}

	public String getCountryFlagUrl() {
		return CountryFlagUrl;
	}

	public void setCountryFlagUrl(String countryFlagUrl) {
		CountryFlagUrl = countryFlagUrl;
	}

}